package com.anpy.management.service;

import com.anpy.management.entity.TaskEntity;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 任务服务接口
 */
public interface TaskService extends IService<TaskEntity> {

    /**
     * 创建任务
     * @param taskEntity 任务信息
     * @return 是否成功
     */
    boolean createTask(TaskEntity taskEntity);

    /**
     * 更新任务
     * @param taskEntity 任务信息
     * @return 是否成功
     */
    boolean updateTask(TaskEntity taskEntity);

    /**
     * 删除任务
     * @param taskId 任务ID
     * @return 是否成功
     */
    boolean deleteTask(Integer taskId);

    /**
     * 获取任务详情
     * @param taskId 任务ID
     * @return 任务信息
     */
    TaskEntity getTask(Integer taskId);

    /**
     * 获取用户的所有任务
     * @param userId 用户ID
     * @return 任务列表
     */
    List<TaskEntity> getUserTasks(Long userId);

    /**
     * 获取项目的所有任务
     * @param projectId 项目ID
     * @return 任务列表
     */
    List<TaskEntity> getProjectTasks(Integer projectId);

    /**
     * 分页查询用户任务
     * @param page 页码
     * @param size 每页大小
     * @param userId 用户ID
     * @param projectId 项目ID（可选）
     * @param currentStatus 当前状态（可选）
     * @param taskName 任务名称（可选，模糊查询）
     * @return 分页结果
     */
    Page<TaskEntity> getUserTasksByPage(int page, int size, Long userId, 
                                        Integer projectId, String currentStatus, 
                                        String taskName);
}
